<?php

/* GLOBAL FUNCTIONS */

/**
* ModifyTable
*
* @param $table       tabulka pro provedeni dotazu
* @param $set         pole s polozkami pro update/insert
* @param $condition   podminka pro update UPDATE
* @param $delete      je-li TRUE smazou se radky (zalezi na podmince)
*
* @return pro insert vraci id vlozeneho prvku, pro update, vraci true
*/
function ModifyTable($table, $set, $condition = "", $delete = false)
{
    if($delete)
    {
        $query = "DELETE FROM $table WHERE $condition";
        $result = mysql_query ($query) or die (msgUser("error",2));
    } else {

    // insert string into slashes and re-transform NULL
	array_walk($set, create_function('&$a', 'if(isset($a) AND $a<>"NOW()"): $a = "\'".AddSlashes($a)."\'"; elseif($a=="NOW()"): $a=\'NOW()\'; else: $a = "NULL"; endif;'));
   
    if(!Empty($condition))
    {
        array_walk($set, create_function('&$val, $key', '$val = "$key = $val";'));
        $query = "UPDATE $table SET " . implode(", ", $set) . " WHERE $condition";
        $result = mysql_query ($query) or die (msgUser("error",2));
        return true;
    }
    else
    {   
         $query = "INSERT INTO $table (" . implode(", ", array_keys($set)) . ") VALUES (" . implode(", ", $set) . ")";
         $result = mysql_query ($query) or die (msgUser("error",2));
         $idInsertu = mysql_insert_id();

        return $idInsertu;
    }
    }
}



/* ====================================================
 * Priprava - zjednoduseni nastaveni pole pro praci s db
 * ==================================================== */	
function nastavSet($aSet,$povolitNull = false) {
	global $_POST;
	global $set;
	$outSet = $set;
	
	for($i=0; $i<sizeof($aSet); $i++) {
		
		if(sizeof($aSet[$i])==1) {
			$prvekDb 	= $aSet[$i][0];
			$prvekForm 	= $aSet[$i][0];
		} else {
			$prvekDb 	= $aSet[$i][0];
			$prvekForm 	= $aSet[$i][1];
		}
		
        if($povolitNull = true) {
            $outSet[$prvekDb] = $_POST[$prvekForm];
        } else {         
		    if(!empty($_POST[$prvekForm])) {
			    $outSet[$prvekDb] = $_POST[$prvekForm];
		    }
        }
	}
	
	return $outSet;

}


/* ====================================================
 * Design
 * ==================================================== */	
function TopContainer() {
	global $config;
echo '
<div id="DividerTop">
	<div style=" padding: 25px 0px 0px 40px">
	<a href="'.$config["cesta"]["url"].'"><img src="'.$config["cesta"]["url"].'img/logo.gif" width="250" height="50" alt="'.$app["Name"].' '.$app["Version"].'" border="0"></a>
	</div>
</div>
<div id="UserInfo">
	'.$_SESSION["usrSettings"]["jmenoUzivatele"].'<br>
	Dnes je '.date("d. m. Y").'<br>
	<a href="'.$config["cesta"]["url"].'odhlasit.htm" title="Odhlásit">Odhlásit</a>
</div>
';


//Navigace - TopMenu
echo '
<div id="DividerTopMenu">
	<ul id="nav">
';

$aMenu = array(
				array('Evidence','evidence.htm'),
				array('Adresář','adresar.htm'),
				array('Slovníky','slovniky.htm'),
				array('Výpůjčky','tiskopisy.htm'),
                array('Nastavení','nastaveni.htm'),
				
			);


foreach($aMenu as $key => $row) {
	echo '<li><a href="'.$config["cesta"]["url"].$row[1].'" title="'.$row[0].'">'.$row[0].'</a></li>'."\n";
}

echo '	</ul>
</div>
<div class="clearBoth"></div>';
}

function dvojka() {
	global $navbgcounter;
	return ($navbgcounter++ % 2 == 0) ? '1' : '2';
}

/* =================================
 * Tabulky
 * ================================= */

function tableDataBlank() {
	$output = '
	<tr id="Blank">
		<td colspan="2">&nbsp;</td>
	</tr>
	';
	return $output;
}

function tableTitle($nadpis, $colspan=2) {
	if(!empty($nadpis)) {
	$output = '
	<tr id="Title">
		<td colspan="'.$colspan.'"><H3 id="Form">'.$nadpis.'</H3></td>
	</tr>
	';
	return $output;
	}
}

function tableData($nadpis,$data, $class="") {
	if(!empty($class)) $styl = ' class="'.$class.'1"';
	$output = '
	<tr>
		<td id="ClassicFormInfo"><b>'.$nadpis.'</b></td>
		<td'.$styl.'>'.$data.'</td>
	</tr>
	';
	return $output;
}

function table2Data($nadpisL,$dataL,$nadpisP,$dataP, $class="") {
	if(!empty($class)) $styl = ' class="'.$class.'1"';
	$output = '
	<tr>
		<td id="ClassicFormInfo2"><b>'.$nadpisL.'</b></td>
		<td'.$styl.'>'.$dataL.'</td>
		<td id="ClassicFormInfo2"><b>'.$nadpisP.'</b></td>
		<td'.$styl.'>'.$dataP.'</td>
	</tr>
	';
	return $output;
}

/* =================================
 * User messages
 * ================================= */
function msgUser($typZpravy = "ok",$idZpravy = -1, $lng = "CZ", $doplnujiciText = "") {
	global $db;
    
    if($idZpravy <> "-1") {
	$query = "
				SELECT 
				  core_msg.zprava
				FROM
				  core_msg
				WHERE
				  core_msg.kodZpravy = '".$idZpravy."'AND 
				  core_msg.jazyk = '".$lng."' AND 
				  core_msg.typ = '".$typZpravy."'
			";	
	$row = $db->GetRow($query);
	}
    
    if(!empty($row["zprava"]) AND !empty($doplnujiciText)) {
        $vystZprava = $row["zprava"].'<br>'.$doplnujiciText;
    } else {
        $vystZprava = $row["zprava"].$doplnujiciText;
    }
    
  
    
	echo '<div class="clearBoth"></div><DIV class="Message" id="'.$typZpravy.'">'.$vystZprava.'</DIV>';
}


/* =================================
 * Box (menu) generated
 * ================================= */
function box($nazev, $obsah) {
$output = '
	<div class="lbox01">
		<h1>'.$nazev.'</h1>

		<div class="lbox01a">
			'.$obsah.'
		</div>
	</div>
';
return $output;
}

/* =================================
 * Strankovani pro sql query
 * ================================= */
function strankovani($result,$char = "?") {
	global $_GET;
	global $num;

	if(empty($_GET["currentPage"])) $_GET["currentPage"] = 1;
	
	if($result->LastPageNo() == 1) {  
    
		//pro stranky kde neni zapotrebi strankovac jej nezobrazime     
	} else {	
	$output = '<div id="pageNav">';
	$lastPageNo = $result->LastPageNo();
	   
	if (!$result->atFirstPage() || !$result->atLastPage()) {
		if (!$result->atFirstPage()) {
			$output .= "<span><a href=\"" . $PHP_SELF . "?currentPage=" . $result->atFirstPage() . "\">&laquo;&laquo;</a></span>";
			$output .= "<span><a href=\"" . $_SERVER["PHP_SELF"].  $char."currentPage=" . (($result->AbsolutePage())-1) . "\">&laquo;</a></span>";
			}

		$output .= '<span>'.$_GET["currentPage"].'/'.$lastPageNo.'</span>';
			
		if (!$result->atLastPage()) {
			$output .= "<span><a href=\"" . $PHP_SELF . "?currentPage=" . (($result->AbsolutePage())+1) . "\">&raquo;</a></span>";
			$output .= "<span><a href=\"" . $PHP_SELF . "?currentPage=" . $lastPageNo . "\">&raquo;&raquo;</a></span>";
			}
	}
	
	$hranice = 5;
	$spodniHranice = ($_GET["currentPage"]-$hranice);
	$horniHranice = ($_GET["currentPage"]+$hranice);
	
	$output .= 'Strana: ';
	for($i=$spodniHranice; $i<=$horniHranice; $i++) {
		if($i > 0 AND $i<= $lastPageNo) {
			if($i == $_GET["currentPage"]) $styl = ' style="color: red;"';
			$output .= '<a href="'.$PHP_SELF.'?currentPage='.$i.'" '.$styl.'>'.$i.'</a>';
			unset($styl);
		}
	}
	$output .= '</div>';
	

	if(($result->LastPageNo()) <0) {
        
	} else {
		return $output;
	}
	}
}


/* =================================
 * Kontrola vyplneni povinnych poli formulare
 * ================================= */
function kontrolaVyplneniAkce($povinnaPole) {
	global $_POST;
	$povolitDal = true; 
	
	for($i=0; $i < sizeof($povinnaPole); $i++) {
		
		if(empty($_POST[$povinnaPole[$i]])) {
			$povolitDal = false;
			$bezVstupuCo[] = $povinnaPole[$i];
			
		}
	}
	$output = array($povolitDal,$bezVstupuCo);
	return $output;
}


function kontrolaVyplneniVstup($nazevInputu,$povinnaPole) {
	if(is_array($povinnaPole)) {
	if(in_array($nazevInputu,$povinnaPole) AND empty($_POST[$nazevInputu])) {
		$output = ' id="noInput"';
	}
	return $output;
	}
}


function kontrolaVyplneniZprava($stav) {
	if($stav==false) {
		return msgUser("error",3);
	}
}



/* =================================
 * Formulare
 * ================================= */

/* @param $aZdrojDat	vstupni pole ve formatu obsahujici podpole: array("value"=> ,"textNazev"=> )
 * @param $jmenoFormu	jmeno formulare
 * @param $idVybranehoPrvku		identifikator vybraneho prvku
 * @param $blank		je-li true, zobrazi se prazdny option na prvnim miste
 * 
 * @return formular select s daty
 */
function selectForm($aZdrojDat,$jmenoFormu, $idVybranehoPrvku = "",$blank = true,$povinnePriznak = "",$disabled = false) {
	unset($output);
	
	if(is_array($aZdrojDat)) {
		
	if($disabled) {
		$disabled = ' disabled';
	}
	
	$output = '<select name="'.$jmenoFormu.'"'.$disabled.$povinnePriznak.'>';
	
	if($blank) {
		$output .= '<option value=""></option>';
	}
	
	
	foreach($aZdrojDat as $key => $row) {
		if($row["value"]==$idVybranehoPrvku) {$select = ' selected';}
		
		if($row["value"] == "optiongroup") {
			$output .= '<optgroup label="'.$row["textNazev"].'">';
		} else {
			$output .= '<option value="'.$row["value"].'"'.$select.'>'.$row["textNazev"].'</option>';
		}
		unset($select);	
	}
	}
	$output .= '</select>';
	
	return $output;
}

function selectFormAnoNe($jmenoFormu, $idVybranehoPrvku = "",$blank = false,$povinnePriznak = "",$disabled = false) {

    //Definice
    $aZdrojDat = array();
    $aZdrojDat[] = array("value"=> '1',"textNazev"=> 'Ano');  
    $aZdrojDat[] = array("value"=> '0',"textNazev"=> 'Ne');
    
    return selectForm($aZdrojDat,$jmenoFormu, $idVybranehoPrvku,$blank,$povinnePriznak,$disabled);
}

function formInputCalendar($nazevFormulare, $vychoziHodnotaInput = "", $vychoziHodnotaFormatovana = "",$idFormulare = "datum", $formatInput = "%Y-%m-%d", $formatValue = "%d. %m. %Y") {
    global $config;
    
    $vystup = '<input type="hidden" name="'.$nazevFormulare.'" id="'.$idFormulare.'" size="15" value="'.$vychoziHodnotaInput.'">&nbsp;<img src="'.$config["cesta"]["url"].'img/calendar.png" id="datum_trig" style="cursor: pointer;" title="Kalendář">
<span id="'.$nazevFormulare.'Fill">'.$vychoziHodnotaFormatovana.'</span>
<script type="text/javascript">
    Calendar.setup({
        inputField     :    "'.$idFormulare.'",     // id of the input field
        ifFormat       :    "'.$formatInput.'",      // format of the input field
        button         :    "'.$idFormulare.'_trig",  // trigger for the calendar (button ID)
        align          :    "B1",           // alignment (defaults to "Bl")
        singleClick    :    true,
        firstDay        :    1,
        displayArea    :    "'.$nazevFormulare.'Fill",
        daFormat       :    "'.$formatValue.'", //format pro zobrazeni
        value           :    "'.$vychoziHodnotaInput.'"
    });
</script>
';

return $vystup;
}



/* =================================
 * Generator boxu a dotazu pro razeni
 * ================================= */
function uzivatelskeRazeni($modul,$proVystup = "db", $vychoziRazeni="", $nazevBoxu = "Řazení záznamů", $ikona = "data_scroll.png") {
	
	global $config;
	global $_POST;
	global $_GET;
	
	unset($pripravaDotazu);
	unset($aDefSloupec);	
	
	$ASC =  '<img src="'.$config["cesta"]["url"].'img/sort_ascending.png" width="16" height="16" alt="Vzestupně" title="Vzestupně" style="margin:0px;">';
	$DESC = '<img src="'.$config["cesta"]["url"].'img/sort_descending.png" width="16" height="16" alt="Sestupně" title="Sestupně" style="margin:0px;">';
	
	//Definice jednotlivych sloupcu	
	$aDefSloupec = array();
	Switch($modul) {
		case "adresar":
				$aDefSloupec[] = array("nazevSubjektu","Subjekt");
                $aDefSloupec[] = array("mesto","Město");
                $aDefSloupec[] = array("ulice","Ulice");
                $aDefSloupec[] = array("ic","IČ");
                $aDefSloupec[] = array("dic","DIČ");
                
                //$aDefSloupec[] = array("psc","");
                //$aDefSloupec[] = array("kodStatu","");
			break;
        case "evidence":
                $aDefSloupec[] = array("nazevPredmetu","Název předmětu");
                $aDefSloupec[] = array("znaceniInventar","Inventární číslo");
                $aDefSloupec[] = array("znaceniChronolog","Přírustkové číslo");
                $aDefSloupec[] = array("cena","Cena");
                $aDefSloupec[] = array("rokNalezu","Rok nálezu");
                $aDefSloupec[] = array("dPosledUprava","Poslední úprava");
                $aDefSloupec[] = array("dVytvoreno","Datum vložení");
            break;
	}
	
	
	//Zpracovani odeslani	
	if(!empty($_POST[$modul."RazeniSloupec"]) AND !empty($_POST[$modul."RazeniSloupec"])) {
		
		$jizRazeno = false;
		//pokud se dany sloupec jeste nenachazi pro razeni, pridame
		if(is_array($_SESSION[$modul]["order"]))
		foreach($_SESSION[$modul]["order"] as $keySloupce => $rowSloupce) {
			if($rowSloupce["sloupecDb"] == $_POST[$modul."RazeniSloupec"]) {
				$jizRazeno = true;
				//continue;
			}
		}
		
		if($jizRazeno == false) {
			$_SESSION[$modul]["order"][] = array("sloupecDb" => $_POST[$modul."RazeniSloupec"], "smer" => $_POST[$modul."RazeniOperator"]);
		}
	}
	
	
	//Smazani pravidel
	if(!empty($_POST["smazatVsechnaRazeni"])) {
		unset($_SESSION[$modul]["order"]);
	}
	
	
	//Generovani dotazu	
	$pripravaDotazu = array();
	
	//pokud je aktivni razeni, zobrazime hodnoty resp. dotaz
	if(is_array($_SESSION[$modul]["order"])) {
	
	if($proVystup == "db") {
		foreach($_SESSION[$modul]["order"] as $key => $row) {
			$pripravaDotazu[] = $row["sloupecDb"].' '.$row["smer"];
		}		
	} else {
		foreach($_SESSION[$modul]["order"] as $key => $row) {
			
			//nalezeni nazvu sloupce dle jmena tabulky $klicDefinice = array_search($row["sloupecDb"], $aDefSloupec);
			foreach($aDefSloupec as $keySloupce => $rowSloupce) {
				if($rowSloupce[0] == $row["sloupecDb"]) {
					$nazevSloupce = $rowSloupce[1];
					continue;
				}
			}
			
			if($row["smer"] == 'DESC') {
				$pripravaVystupu .= '<span>'.$DESC.' '.$nazevSloupce.'</span><br>';
			} else {
				$pripravaVystupu .= '<span>'.$ASC.' '.$nazevSloupce.'</span><br>';
			}
		}	
	}
	
	
	$vystup = (' ORDER BY '. implode(", ",$pripravaDotazu));
	} else {
		//pokud je definovano, jen a pouze vychozi razeni
		if(!empty($vychoziRazeni)) {
			$vystup = ' ORDER BY '.$vychoziRazeni;
		}
	}
	
	
	if($proVystup == "box") {
		unset($tmpBoxObsah);
		
		if(!empty($pripravaVystupu))
		$tmpBoxObsah = '
		<div style="font-size: xx-small;">
			<b>Aktivní řazení:</b><br>'.$pripravaVystupu.'

			<br><form method="post" action=""><input type="hidden" name="smazatVsechnaRazeni" value="true"><input type="image" src="'.$config["cesta"]["url"].'img/scroll_delete.png" size="13" alt="Smazat řazení" title="Smazat řazení"></form>
		</div>';
		$tmpBoxObsah .= '
			<div>
				<form method="post" action="">
				 <img src="'.$config["cesta"]["url"].'img/'.$ikona.'" width="16" height="16" alt="" title="" style="margin:0px;">&nbsp;<strong>Sloupec</strong><br>
               				<select name="'.$modul.'RazeniSloupec">';
               				foreach($aDefSloupec as $key => $val) {
								$tmpBoxObsah .= '<option value="'.$aDefSloupec[$key][0].'">'.$aDefSloupec[$key][1].'</option>';
							}
		$tmpBoxObsah .= '
								</select><br>
							<img src="'.$config["cesta"]["url"].'img/'.$ikona.'" width="16" height="16" alt="" title="" style="margin:0px;">&nbsp;<strong>Způsob</strong>
               				<select name="'.$modul.'RazeniOperator">
               						<option value="ASC">Vzestupně (ASC)</option>
               						<option value="DESC">Sestupně (DESC)</option>
								</select>
								<input type="image" src="'.$config["cesta"]["url"].'img/ico_arrow.gif" size="13" alt="" title="">
						</form><br>
			</div>
			';
			$vystup = box('Řazení záznamů',$tmpBoxObsah);
	}
	
	return $vystup;
}

/* =================================
 * Generator boxu a dotazu pro vyhledavani
 * ================================= */
function uzivatelskeHledani($modul,$proVystup = "db", $vychoziPodminky="", $nazevBoxu = "Vyhledávání", $ikona = "data_find.gif") {
    
    global $config;
    global $_POST;
    global $_GET;
    
    unset($pripravaDotazu);
    unset($aDefSloupec);
    
    //Definice jednotlivych sloupcu    
    $aDefSloupec = array();
    Switch($modul) {
        case "adresar":
                $aDefSloupec[] = array("nazevSubjektu","Subjekt");
                $aDefSloupec[] = array("mesto","Město");
                $aDefSloupec[] = array("ulice","Ulice");
                $aDefSloupec[] = array("ic","IČ");
                $aDefSloupec[] = array("dic","DIČ");
                
                //$aDefSloupec[] = array("psc","");
                //$aDefSloupec[] = array("kodStatu","");
            break;
        case "evidence":
                $aDefSloupec[] = array("nazevPredmetu","Název předmětu");
                $aDefSloupec[] = array("znaceniInventar","Inventární číslo");
                $aDefSloupec[] = array("znaceniChronolog","Přírustkové číslo");
                $aDefSloupec[] = array("cena","Cena");
                $aDefSloupec[] = array("rokNalezu","Rok nálezu");
            break;
    }
    
    
    //Smazani pravidel
    if(!empty($_POST[$modul."SmazatHledani"])) {
        unset($_SESSION[$modul]["where"]);
    }
    
    /***************************************/
    //Zpracovani postu
    
    //Nastaveni pro operator
 
    switch($_POST[$modul.'PodminkaOperator']) {
        case "LIKE":        $vyrazSql       = ' LIKE \'%'.$_POST[$modul.'PodminkaVyraz'].'%\'';
                            //$vyrazTextovy[$_POST[$modul.'PodminkaSloupec']][]   = '<i>obsahuje</i> '.$_POST[$modul.'PodminkaVyraz'];
        break;
        case "NOT LIKE":    $vyrazSql       = ' NOT LIKE \'%'.$_POST[$modul.'PodminkaVyraz'].'%\'';
                            //$vyrazTextovy[$_POST[$modul.'PodminkaSloupec']][]   = '<i>neobsahuje</i> '.$_POST[$modul.'PodminkaVyraz'];
        break;
        case "=":           $vyrazSql       = ' = \''.$_POST[$modul.'PodminkaVyraz'].'\'';
                            //$vyrazTextovy[$_POST[$modul.'PodminkaSloupec']][]   = '<i>rovná se</i> '.$_POST[$modul.'PodminkaVyraz'];
        break;
        
    }
    
    //$vyrazCely = $_POST[$modul.'PodminkaOperator'].' '.$vyrazBezOperatoru;
    
    //Podminka
    $aPodminka = array();
    if(!empty($_POST[$modul.'PodminkaSloupec']) AND !empty($vyrazSql)) {
        $_SESSION[$modul]["where"][$_POST[$modul.'PodminkaSloupec']]["OR"][] = $vyrazSql;        
    }

    
    //db
    if(is_array($_SESSION[$modul]["where"])) {
    
    if($proVystup == "db") {
    
        //sloupce
        foreach($_SESSION[$modul]["where"] as $key => $val) {
            //key = nazev sloupce pro db
            $pripravaDotazu[] = ' ('.$key .' '.implode(' OR '.$key .' ', $_SESSION[$modul]["where"][$key]["OR"]).') ';
        }
        
        $vystup = 'WHERE '.implode(' AND ', $pripravaDotazu);
    }
    
    
    //textovy vystup
    foreach($_SESSION[$modul]["where"] as $key => $val) {
    //nalezeni nazvu sloupce dle jmena tabulky $klicDefinice = array_search($row["sloupecDb"], $aDefSloupec);
            foreach($aDefSloupec as $keySloupce => $rowSloupce) {
                if($rowSloupce[0] == $key) {
                    $nazevSloupce = $rowSloupce[1];
                    continue;
                }
                
            }
            
            $pripravaVystupu .= '<br><span><b>'.$nazevSloupce.'</b></span><br>';
            $pripravaVystupu .= strtr(implode(' <br>',$_SESSION[$modul]["where"][$key]["OR"]), array( "=" => "<i>rovná se</i>", "NOT LIKE" => "<i>neobsahuje</i>", "LIKE" => "<i>obsahuje</i>", "%"=>"", "'"=>"") ).'<br>';
            
    }
    
    }
        
    //Box
    if($proVystup == "box") {
        unset($tmpBoxObsah);
        
        if(!empty($pripravaVystupu))
        $tmpBoxObsah = '
        <div style="font-size: xx-small;">
            <b>Aktivní vyhledávání:</b><br>'.$pripravaVystupu.'

            <br><form method="post" action=""><input type="hidden" name="'.$modul.'SmazatHledani" value="true"><input type="image" src="'.$config["cesta"]["url"].'img/scroll_delete.png" size="13" alt="Smazat hledání" title="Smazat hledání"></form>
        </div>';
        $tmpBoxObsah .= '
            <div>
                <form method="post" action="">
                 <img src="'.$config["cesta"]["url"].'img/'.$ikona.'" width="16" height="16" alt="" title="" style="margin:0px;">&nbsp;<strong>Sloupec</strong><br>
                               <select name="'.$modul.'PodminkaSloupec">';
                               foreach($aDefSloupec as $key => $val) {
                                $tmpBoxObsah .= '<option value="'.$aDefSloupec[$key][0].'">'.$aDefSloupec[$key][1].'</option>';
                            }
        $tmpBoxObsah .= '
                                </select><br>
                            <img src="'.$config["cesta"]["url"].'img/'.$ikona.'" width="16" height="16" alt="" title="" style="margin:0px;">&nbsp;<strong>Operátor</strong>
                                <select name="'.$modul.'PodminkaOperator">
                                   <option value="LIKE">Obsahuje</option>
                                   <option value="=">Rovná se</option>
                                   <option value="NOT LIKE">Neobsahuje</option>
                                </select>
                                <br>
                    <img src="'.$config["cesta"]["url"].'img/data_view.gif" width="16" height="16" alt="" title="" style="margin:0px;">&nbsp;<strong>Výraz</strong>
                    <input type="text" name="'.$modul.'PodminkaVyraz">
                    <input type="image" src="'.$ConfigCesta["img"].'030.gif" size="13" alt="" title=""><input type="image" src="'.$config["cesta"]["url"].'img/ico_arrow.gif" size="13" alt="" title="">
                        </form><br>
            </div>
            ';
            $vystup = box('Vyhledávání',$tmpBoxObsah);
    }
    unset($_POST[$modul.'PodminkaSloupec']);
    unset($_POST[$modul.'PodminkaVyraz']);
    unset($_POST[$modul.'PodminkaOperator']);
    return $vystup;
}


/* =================================
 * Generator pozicnich bodu pro google map
 * ================================= */
function getPointsJS() {
	global $db;
	
	$query = "	SELECT latitude,longitude, nazevPredmetu, idPredmetu
				FROM prd_predmety";
	$result = $db->Execute($query);
	$num = $result->RecordCount();
	

	$javaScript = '';
	if(!empty($num)) {
		foreach($result as $key => $row) {
			$row['nazevPredmetu'] = addslashes($row['nazevPredmetu']);
			$row['nazevPredmetu'] = str_replace(';',',',$row['nazevPredmetu']);
			$javaScript .= "mArray.push('{$row['latitude']};{$row['longitude']};{$row['nazevPredmetu']};{$row['idPredmetu']}')\n";
		}
		
		//print "Vybrano $num radku\n";
	}
	else {
		//print "Nenalezeny zadne body\n";
	}
	return $javaScript;
}

/* =================================
 * Zobrazeni google mapy
 * ================================= */
function zobrazGMapu($lat, $lon, $jenZobrazeni = false) {
	if($jenZobrazeni == false) {
	$output = '
	<tr>
		<td id="ClassicFormInfo" colspan="2"><b>Vyberte místo nálezu na mapě</b><br>
			<input type="checkbox" onclick="toggleZoom(this.checked)" id="scrollWheelZoomToggle">
     		<label for="scrollWheelZoomToggle">Používat kolečko myši pro zvětšování/zmenšování</label> | š:<input id="lat" name="lat" size="25" value="'.$lat.'" class="B1" readonly> d:<input id="lon" name="lon" value="'.$lon.'"size="25" class="B1" readonly></td>
	</tr>';
	} else {
	$output = '
	<tr>
		<td id="ClassicFormInfo" colspan="2">
			<input type="checkbox" onclick="toggleZoom(this.checked)" id="scrollWheelZoomToggle">
     		<label for="scrollWheelZoomToggle">Používat kolečko myši pro zvětšování/zmenšování</label></td>
	</tr>';
	}
	
	$output .= '
	<tr>
		<td colspan="2" style="text-align: center;"><div id="map" style="width: 700px; height: 400px"></div></td>
	</tr>';
	return $output;
}

/* =================================
 * Prihlasovaci obrazovka
 * ================================= */
function LoginPage($msg) {
	require_once('config.inc.php');
	require_once('head.inc.php');
	global $config;
	
	Logout();
	
	switch($msg){
		case "logout": 	$MSGOut = 'Odhlášení proběhlo úspěšně.';
			;
			break;
		case "bad": 	$MSGOut = 'Neplatné uživatelské jméno nebo heslo.';
			;
			break;
		default:		$MSGOut = 'Zadejte své uživatelské jméno a heslo.';
		;
	} // switch
	

	echo '
	<FORM METHOD="post" ACTION="'.$config["cesta"]["url"].'index.php">
	<div id="CCenter">
	<div id="LogIn">
	<p style="text-align: right;">
		<img src="'.$config["cesta"]["url"].'img/logo.gif" width="250" height="50" alt="'.$app["Name"].'"><br><br>';

	echo '<br>&nbsp;'.$MSGOut."<br><br>";

	echo 'Uživatel: <INPUT TYPE="text" NAME="LoginName" size="30" maxlength="30"><br>
		Heslo: <INPUT TYPE="password" NAME="LoginPass" size="30" maxlength="30"><br>
		<span style="font-size: 10px;"><a href="'.$config["cesta"]["url"].'zapomenuteHeslo.htm">neznám heslo</a></span> <INPUT type="submit" value="Přihlásit" class="Button">';
	
		//echo 'Vážení návštěvníci,<br>z důvodu přechodu plusKlubu na novou verzi je nyní aplikace uzavřena. Předpokládané datum znovuzprovoznění je 5. 10. 2007 v 20 hodin.<br>Děkujeme za pochopení';
	echo '	</p>
	</div>
	</div>
	</FORM>
	';

	
googleAnalytics();

echo '
	</body>
	</html>';
}
/* =================================
 * Nacteni uzivatelskeho nastaveni
 * ================================= */
function uzivatelskeNastaveni($LoginName,$LoginPassMd5) {
	
	//Pokud najdeme, nahrajeme nastaveni uzivatele
	$query = "	SELECT
						idUzivatele,
						titulPred,
						titulZa,
						krestni,
						prijmeni,
						usrLogin,
						usrPass,
						usrPassMd5,
						email,
                        sNumRows,
                        sMapView,
                        sImgViewEvidList,
                        sUserPerm
				FROM
						core_uzivatele
				WHERE
						usrLogin='".$LoginName."'
						AND usrPassMd5='".$LoginPassMd5."'
						AND smazano = 'false'
				LIMIT 1
				";
	$result = mysql_query ($query) or die (Message("fatal","w",0,3,$query));
	$num = mysql_num_rows ($result);
	if (empty($num)) {$AccessDenied = true;} else {
		while ($row = mysql_fetch_array ($result)) {
			
            session_register("LoginName");
            session_register("LoginPass");
            session_register("usrSettings");
            		
			$_SESSION["LoginName"] 			= $LoginName;
			$_SESSION["LoginPass"] 			= $LoginPass;
			$_SESSION["usrSettings"]["usrLogin"]			= $row["usrLogin"];
			$_SESSION["usrSettings"]["usrPassMd5"]			= $row["usrPassMd5"];
			$_SESSION["usrSettings"]["jmenoUzivatele"] 		= FormatJmena($row["titulPred"],$row["krestni"],$row["prijmeni"],$row["titulZa"]);
			$_SESSION["usrSettings"]["idUzivatele"]			= $row["idUzivatele"];
			$_SESSION["usrSettings"]["email"]				= $row["email"];
            $_SESSION["usrSettings"]["sNumRows"]            = $row["sNumRows"];
            $_SESSION["usrSettings"]["sMapView"]            = $row["sMapView"];
            $_SESSION["usrSettings"]["sImgViewEvidList"]    = $row["sImgViewEvidList"];
            $_SESSION["usrSettings"]["jeAdmin"]             = $row["sUserPerm"];
            
			
		} //while
	} //if
}

/* =================================
 * Kontrola opravneni pro uzivatele
 * ================================= */
function maUzivatelOpravneni($vystup = "tf", $vystupFalse = "") {   
    
    if($_SESSION["usrSettings"]["jeAdmin"] == 1) {
        if($vystup == "tf") {
            return true;
        } else {
            return $vystup;
        }
    } else {
        if($vystup == "tf") {
            return false;
        } else {
            return $vystupFalse;
        }
    }
    
}

/* =================================
 * Formatovani civilniho jmena uzivatele
 * ================================= */
function FormatJmena($titulPred, $jmeno, $prijmeni, $titulZa) {
	
	if(!empty ($titulPred)) {
		$output .= $titulPred.' ';
	}
	
	if(!empty ($jmeno)) {
		$output .= ucfirst($jmeno).' ';
	}
	
	if(!empty ($prijmeni)) {
		$output .= ucfirst($prijmeni);
	}
	
	if(!empty ($titulZa)) {
		$output .=' '. $titulZa;
	}
	
	return $output;
}

/* =================================
 * Odhlaseni
 * ================================= */
function Logout() {
    
    unset($_REQUEST);
    unset($_GET);
    unset($_POST);
        
    unset($_SESSION["LoginName"]);
    unset($_SESSION["LoginPass"]);
    unset($_SESSION["usrSettings"]);
  
      
    $_SESSION = array();   
    
    //$_SESSION["LoginName"] = "";
    //$_SESSION["LoginPass"] = "";
}

/* =================================
 * Google Analytics
 * ================================= */
function googleAnalytics() {
	//vlozeni kodu sluzby
}

/* =================================
 * Generování hesla
 * ================================= */
function InterGenPass($delka){
	global $password;

	$znaky = array('b', 'c', 'd', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'u', 'v', 'w', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_', '?');
	$num_znaky = count($znaky);
	$password = '';
	for($i = 0; $i < $delka; $i++)
		$password .= 
		$znaky[rand(0, $num_znaky - 1)];
	return substr($password, 0, $delka);
}

/* =================================
 * Generování hlavičky pro email
 * ================================= */
function mailHlavicka() {
	global $config;
	$config["MailSys"]["headers"] = $config["MailSys"]["from"].$config["MailSys"]["xsender"].$config["MailSys"]["return"].$config["MailSys"]["mailer"].$config["MailSys"]["msgid"].$config["MailSys"]["charset"];
	return $config["MailSys"]["headers"];
}

/* =================================
 * Poslání emailu
 * ================================= */
function posliEmail($email, $predmet, $obsah, $hlavicka = "") {
	if(mail($email, $predmet, $hlavicka, mailHlavicka().$hlavicka)) {
		return true;
	} else {
		return false;
	}
}

/* =================================
 * Upraveni velikosti obrazku na pozadovanou velikost
 * ================================= */
 
/* @param $filename		cesta k souboru, ktery se bude zmensovat
 * @param $copypath		cesta, kam zmenseny soubor ulozit
 * @param $MaxWidth		maximalni sirka zmenseneho obrazku
 * @param $MaxHeight	maximalni vyska zmenseneho obrazku
 * 
 * @return formular select s daty
 */
function imageResizer($filename,$copypath, $MaxWidth = 160, $MaxHeight = 160)
{
	//zjistime puvodni velikost obrazku
	list($OrigWidth, $OrigHeight) = getimagesize($filename);
    $noveVelikosti = pomeroveZmenseni($OrigWidth, $OrigHeight,$MaxWidth,$MaxHeight);
    $NewWidth = $noveVelikosti["width"];
    $NewHeight = $noveVelikosti["height"];
	
    /*
	//hodnota 0 v parametrech MaxWidth resp. MaxHeight znamena,
	//ze sirka resp. vyska vysledku muze byt libovolna
	if ($MaxWidth == 0)
		$MaxWidth = $OrigWidth;
	if ($MaxHeight == 0)
		$MaxHeight = $OrigHeight;
	
	//nyni vypocitam pomer zmenseni
	$pw = $OrigWidth / $MaxWidth;
	$ph = $OrigHeight / $MaxHeight;
	
	if ($pw > $ph) {
		$p = $pw;
	} else {
		$p = $ph;
	}
	
	if ($p < 1) {
		$p = 1;
	}
	
	//v p ted mame pomer pro zmenseni
	//vypocitame vysku a sirku zmenseneho obrazku
	$NewWidth = (int)$OrigWidth / $p;
	$NewHeight = (int)$OrigHeight / $p;
	*/
    
    
    
	//vytvorime novy obrazek pozadovane vysky a sirky
	$image_p = imagecreatetruecolor($NewWidth, $NewHeight);
	
	//otevreme puvodni obrazek se souboru
	$image = imagecreatefromjpeg($filename);
	
	//a okopirujeme zmenseny puvodni obrazek do noveho
	imagecopyresampled($image_p, $image, 0, 0, 0, 0, $NewWidth, $NewHeight, $OrigWidth, $OrigHeight);
	
	//a ulozime
	imagejpeg($image_p, $copypath, 100);
}

/* =================================
 * Vypocet pomerove velikosti pri zmenseni obrazku
 * ================================= */
function pomeroveZmenseni($OrigWidth,$OrigHeight,$MaxWidth = 160,$MaxHeight = 160) {
     //list($OrigWidth, $OrigHeight) = getimagesize($obrazek);
    
    //hodnota 0 v parametrech MaxWidth resp. MaxHeight znamena,
    //ze sirka resp. vyska vysledku muze byt libovolna
    if ($MaxWidth == 0)
        $MaxWidth = $OrigWidth;
    if ($MaxHeight == 0)
        $MaxHeight = $OrigHeight;
    
    //nyni vypocitam pomer zmenseni
    $pw = $OrigWidth / $MaxWidth;
    $ph = $OrigHeight / $MaxHeight;
    
    if ($pw > $ph) {
        $p = $pw;
    } else {
        $p = $ph;
    }
    
    if ($p < 1) {
        $p = 1;
    }
    
    //v p ted mame pomer pro zmenseni
    //vypocitame vysku a sirku zmenseneho obrazku
    $NewWidth = (int)$OrigWidth / $p;
    $NewHeight = (int)$OrigHeight / $p;
    
    $vysledek = array();
    $vysledek["width"] = $NewWidth;
    $vysledek["height"] = $NewHeight;
    
    return $vysledek;
}

/* =================================
 * Zkrácení textu na urcity pocet znaku
 * ================================= */
function zkratitText($text, $limit=0 ,$oddelovac = " ",$pokracovani = "...") {
	global $config;
	
	if($limit == 0) $limit = $config["zkraceniPocetZnaku"];
	
	if (strlen($text) <= $limit) {
		return $text;
	} else {
		$text = substr($text, 0, $limit+1);
		$pos = strrpos($text, $oddelovac); // v PHP 5 by se dal použít parametr offset
		
		return substr($text, 0, ($pos ? $pos : -1)) . $pokracovani;
	}
}


/* =================================
 * Odstranění diakritiky/znaků
 * ================================= */
function InterOdstranDiakritiku($vstup,$priznak) {
    //Je-li definovany priznak, dochazi ke specialnimu nahrazovani - ani nejde o diakritiku
    switch($priznak){
        case "seo": $TextBezDiakritiky = strtr($vstup, array(    "ě"=>"e",
                                                                "š"=>"s",
                                                                "č"=>"c",
                                                                "ř"=>"r",
                                                                "ž"=>"z",
                                                                "ý"=>"y",
                                                                "á"=>"a",
                                                                "í"=>"i",
                                                                "é"=>"e",
                                                                "Ě"=>"E",
                                                                "Š"=>"S",
                                                                "Č"=>"C",
                                                                "Ř"=>"R",
                                                                "Ž"=>"Z",
                                                                "Ý"=>"Y",
                                                                "Á"=>"A",
                                                                "Í"=>"I",
                                                                "É"=>"E",
                                                                "€"=>"e",
                                                                "ń"=>"n",
                                                                "Ń"=>"n",
                                                                "ň"=>"n",
                                                                "Ň"=>"n",
                                                                "("=>"",
                                                                ")"=>"",
                                                                "*"=>"",
                                                                "/"=>"",
                                                                "\\"=>"",
                                                                " "=>"-",
                                                                ","=>"",
                                                                "."=>"",
                                                                "ů"=>"u",
                                                                "ú"=>"u",
                                                                "["=>"",
                                                                "{"=>"",
                                                                "]"=>"",
                                                                "}"=>"",
                                                                ">"=>"",
                                                                "<"=>"",
                                                                "§"=>"",
                                                                "!"=>"",
                                                                "?"=>"",
                                                                "Ó"=>"O",
                                                                "ó"=>"o",
                                                                "@"=>"",
                                                                "#"=>"",
                                                                "$"=>"",
                                                                "%"=>"",
                                                                "^"=>"",
                                                                "&"=>"",
                                                                "*"=>"",
                                                                "("=>"",
                                                                ")"=>"",
                                                                "="=>"",
                                                                "_"=>"-",
                                                                "~"=>"-",
                                                                "^"=>"-",
                                                                "---"=>"-"
                                                            )
                                        );
            ;
            break;
        case "filename": $TextBezDiakritiky = strtr($vstup, array(    "ě"=>"e",
                                                                "š"=>"s",
                                                                "č"=>"c",
                                                                "ř"=>"r",
                                                                "ž"=>"z",
                                                                "ý"=>"y",
                                                                "á"=>"a",
                                                                "í"=>"i",
                                                                "é"=>"e",
                                                                "Ě"=>"E",
                                                                "Š"=>"S",
                                                                "Č"=>"C",
                                                                "Ř"=>"R",
                                                                "Ž"=>"Z",
                                                                "Ý"=>"Y",
                                                                "Á"=>"A",
                                                                "Í"=>"I",
                                                                "É"=>"E",
                                                                "€"=>"e",
                                                                "ń"=>"n",
                                                                "Ń"=>"n",
                                                                "ň"=>"n",
                                                                "Ň"=>"n",
                                                                "("=>"",
                                                                ")"=>"",
                                                                "*"=>"",
                                                                "/"=>"",
                                                                "\\"=>"",
                                                                " "=>"-",
                                                                ","=>"",
                                                                "ů"=>"u",
                                                                "ú"=>"u",
                                                                "["=>"",
                                                                "{"=>"",
                                                                "]"=>"",
                                                                "}"=>"",
                                                                ">"=>"",
                                                                "<"=>"",
                                                                "§"=>"",
                                                                "!"=>"",
                                                                "?"=>"",
                                                                "Ó"=>"O",
                                                                "ó"=>"o",
                                                                "@"=>"",
                                                                "#"=>"",
                                                                "$"=>"",
                                                                "%"=>"",
                                                                "^"=>"",
                                                                "&"=>"",
                                                                "*"=>"",
                                                                "("=>"",
                                                                ")"=>"",
                                                                "="=>"",
                                                                "_"=>"-",
                                                                "~"=>"-",
                                                                "^"=>"-",
                                                                "---"=>"-"
                                                            )
                                        );
            ;
            break;
        case "log": $TextBezDiakritiky = strtr($vstup, array(    "/"=>"",
                                                                "\\"=>"",
                                                                "^"=>"",
                                                                "&"=>"",
                                                                "*"=>"",
                                                                "("=>"",
                                                                ")"=>"",
                                                                "="=>"",
                                                                "'"=>",",
                                                                "~"=>"-",
                                                                "^"=>"-"
                                                            )
                                        );
            ;
            break;
        default:    $TextBezDiakritiky = strtr($vstup,"ěščřžýáíéúůĚŠČŘŽÝÁÍÉÚŮ","escrzyaieuuESCRZYAIEUU");
            ;
    }
            
    
    return ($TextBezDiakritiky);
}

/* =================================
 * Generování speciálního identifikátoru
 * ================================= */
function GUID(){
   if (function_exists('com_create_guid')){
       return strtr(com_create_guid(), array("{"=>"","}"=>""));
   }else{
       mt_srand((double)microtime()*10000);
       $charid = strtoupper(md5(uniqid(rand(), true)));
       $hyphen = chr(45);// "-"
       $uuid = //chr(123)// "{"
                substr($charid, 0, 8).$hyphen
               .substr($charid, 8, 4).$hyphen
               .substr($charid,12, 4).$hyphen
               .substr($charid,16, 4).$hyphen
               .substr($charid,20,12);
               //.chr(125);// "}"
       return $uuid;
   }
}

/**
 * @param $typ             Typ dokumentu (napr. nabidka)
 * @param $docNum        Cislo dokumentu (uzivatelsky tvar)
 * @param $guidSouboru    Unikatni identifikator souboru
 * @param $jmenoSouboru    Jmeno souboru
 *
 * @return odkaz pro stazeni souboru
 */
function stahnoutSouborLink($typ,$idPredmetu,$guidSouboru,$jmenoSouboru,$puvodniJmenoSouboru) {
    global $config;
    
    return '<a href="'.$config["cesta"]["url"].'soubor/'.$typ.'/'.$idPredmetu.'/'.$guidSouboru.'/'.$jmenoSouboru.'">'.$puvodniJmenoSouboru.'</a>';
}

/* =================================
 * Chyba 403
 * ================================= */
function e403() {
    global $ConfigCesta;
    header ('HTTP/1.0 403 Forbidden'); // není až tak nutný
    header ('Status: 403 Forbidden'); // pro některý případy
    header ('Location: '.$config["cesta"]["url"].'error.php?kodChyby=403'); // přesměruju na stránku s hláškou 403 Forbidden
    header ('Connection: close'); // ukončím spojení 
}

/* =================================
 * Logovani akci
 * ================================= */
/*
 * Modul - jméno modulu, ve kterém se akce prováděla
 * Reference - primární klíč!!
 * actionName - jméno akce, která se provedla
 * newValue - nová hodnota
 */
function aLog($modul,$reference,$actionCode = 0,$newValue = "",$reference2 = "",$reference3 = "") {
    switch($actionCode) {
        case 1:        $actionName = 'Zobrazen záznam'; break;
        case 2:        $actionName = 'Vložen nový záznam'; break;
        case 7:        $actionName = 'Upraven exitující záznam'; break;
        case 3:        $actionName = 'Úprava osobního nastavení'; break;
        case 4:        $actionName = 'Stažení souboru'; break;
        case 6:        $actionName = 'Nahrání souboru'; break;
        case 5:        $actionName = 'Vygenerováno nové heslo'; break;
        case 8:        $actionName = 'Generována evidenční karta předmětu v PDF'; break;
        case 9:        $actionName = 'Přidán předmět do výpůjčky'; break;
        
        default:     $actionName = 'Nepopsaná akce';
            break;
    }
    
    
    
    $set = array();
    
    if(is_array($reference)) {
        $set["Ref1"]    = $reference[0];
        $set["Ref1Txt"] = $reference[1];
    } else {
        $set["Ref1"]       = $reference;        
    }
        
    $set["idUzivatele"]     = $_SESSION["usrSettings"]["idUzivatele"];
    $set["puvodniJmenoUsr"] = $_SESSION["usrSettings"]["jmenoUzivatele"];    
    $set["idAkce"]          = $actionCode;
    $set["actionName"]      = $actionName;
    $set["vlozenaHodnota"]  = $newValue;
    $set["modul"]           = $modul;    
    $set["Ref2"]      = $reference2;
    $set["Ref3"]      = $reference3;
    
    ModifyTable('core_log',$set);
    
}

/* =================================
 * Prekonvertuje text do kodovani win1250
 * pro export do pdf, rtf
 * ================================= */
function textOut($text, $puvodniKodovani = "UTF-8", $ciloveKodovani = "WINDOWS-1250") {
    
    if(empty($text)) $text = '-';
    
    return iconv($puvodniKodovani,$ciloveKodovani, $text);
}

/* =================================
 * Existuje zaznam v db?
 * ================================= */
function existNM($nazevTabulky, $podminka) {
    global $db;
    
    $query = "SELECT
                        count(*) as pocet
                FROM
                        ".$nazevTabulky."                    
                WHERE
                        
                ".$podminka;
    $row = $db->GetRow($query);
    if(empty($row["pocet"])) {
        return false;
    } else {
        return true;
    }
}
?>